'use strict'

const { ApiController } = require('jax')

class AdminRoleController extends ApiController {
  get Model() {
    return this.ctx.model.AdminRole
  }

  // 查询前
  beforeIndex() {
    const { ctx } = this
    const { query } = ctx
    const { admin } = ctx.state
    const filter = {
      systemType: admin.systemType,
    }

    ;['isOpen', 'systemType'].map((key) => {
      if (query[key] && !query[key] == '') filter[key] = query[key]
    })

    // 非管理员系统
    // if (admin.systemType != 'admin') {
    //   filter.sourceId = admin.sourceId
    // }
    // 角色限制
    // const rolefilter = {
    //   admin: {
    //     origin: 'admin',
    //   },
    //   store: {
    //     origin: 'store',
    //   },
    //   project: {
    //     origin: 'project',
    //   },
    //   admin: {
    //     origin: 'project',
    //   },
    // }

    return {
      filter,
      sort: {
        _id: 'ASC',
      },
    }
  }

  // 新增前
  async beforeCreate() {
    const { ctx } = this
    const { body } = ctx.request
    const { admin } = ctx.state

    // 设置角色来源
    body.sourceId = admin.sourceId
    // body.sourceType = admin.sourceType.
    body.systemType = admin.systemType
  }

  // 修改前
  async beforeUpdate() {
    const { ctx } = this
    const { body } = ctx.request
    const { admin } = ctx.state

    if (body.sourceType != undefined && body.sourceType != admin.sourceType) throw '越级操作'
  }
}

module.exports = AdminRoleController
